package cn.xzqwjw.taskmanager.repository;

import cn.xzqwjw.taskmanager.domain.pojo.SysAdmin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 继承了BaseMapper，这里就是Mybatis-Plus的作用，已帮我们封装好了基本的CRUD操作
 *
 * @author wjw
 */
@Repository
public interface SysAdminMapper extends BaseMapper<SysAdmin> {

  /**
   * 开关管理员的enabled
   *
   * @param id 管理员id
   */
  void patchEnabled(int id);

  /**
   * 开关管理员的账号是否未过期
   *
   * @param id 管理员id
   */
  void patchAccountExpired(int id);

  /**
   * 开关管理员的账号是否未锁定
   *
   * @param id 管理员id
   */
  void patchAccountLocked(int id);

  /**
   * 开关管理员的密码是否未过期
   *
   * @param id 管理员id
   */
  void patchCredentialsExpired(int id);

  /**
   * 根据用户名得到管理员
   *
   * @param username 管理员用户名
   * @return 根据用户名得到的管理员
   */
  SysAdmin getAdminByUsername(String username);

  /**
   * 得到某单位下所有管理员
   *
   * @return 所有管理员列表
   */
  List<SysAdmin> listAllByIdUnit(int idUnit);

  /**
   * 得到所有数据，用于获取分页数据
   *
   * @return 所有管理员列表
   */
  List<SysAdmin> listPage(Page<?> page);

}
